The development and configuration of a process-driven enterprise application can involve coordination across multiple development areas. The process-driven enterprise application can implement business processes that can include interactions between employees, resources, and workflows. A first development area can be associated with the orchestration of the process (e.g., what activities occur during the process and in what order the activities occur). A second development area can be associated with the lifecycle of the process (e.g., state changes over time of documents and requests that are associated with the process). A third development area can be associated with one or more business rules associated with the process (e.g., constraints around one or more of the process activities). For example, the activities (the process activities) can include, but are not limited to, approvals, notifications, and assignments. In some implementations, the activities can include automated activities.
In order to achieve coordination of a process-driven enterprise application across multiple development areas, a partnership may be required between a software developer (who creates the software modules needed to fulfill the business requirements) and a business analyst (who understands the needs of the business). For example, the business analyst can provide the software developer with specifications about desired system behavior. A software developer can create the logic for the process-driven enterprise application. A business analyst can define the process functionality and behavior of the process-driven enterprise application using business rule engines, process orchestration engines, and process lifecycle engines. Each of these engines, however, may understand just a limited set of primitive application process behaviors. The software developer is left with the task of understanding completely the business use cases in order to write the code for the software modules needed to fulfill the business requirements for the process-driven enterprise application.
Thus, a need exists for systems, methods, and apparatus to address the shortfalls of present technology and to provide other new and innovative features that can allow a software developer to more easily write code for software modules needed to fulfill business requirements for process-driven enterprise applications.